package com.cy.pj.common.bo;//value object
/*
 * 业务对象
 * POJO(VO/BO/DTO/DO)中的BO对象
 * 1)所有的POJO对象属性定义都用对象属性
 * 2)所有的POJO对象属性默认值无需指定
 * 3)所有的POJO对象需要提供set/get方法,对boolean提供isXX方法
 * 4)所有的POJO对象需要提供无参构造函数
 * 5)所有的POJO对象的构造方法不要写任何业务逻辑
 * 6)所有的POJO类必须写toSring方法
 * 
 * 此对象为业务层向外输出的一个BO对象,用于封装业务执行的结果
 * 泛型:类上定义的泛型用于约束类中属性,方法参数 ,方法返回值类型
 */

import java.io.Serializable;
import java.util.List;

import lombok.Data;
import lombok.NoArgsConstructor;
//此对象为业务层向外输出的一个BO对象
//封装业务层输出的结果
//泛型:类上定义\
@Data
@NoArgsConstructor	
public class PageObject<T> implements Serializable{
	/**
	 * 序列号
	 */
	private static final long serialVersionUID = -4909524813392903123L;
	/*当前页面    泛型没有直接传输   方法上写值提高灵活性*/
	private List<T> records;
	/*
	 * 总行数(通过查询获得)
	 */
	private Integer rowCount=0;
	/*总页数  一共的页数*/
	private Integer PageCout=0;
	/*每页  每页的行数*/
	private Integer pageSize=3;
	/*当前的页码值   当前的页数*/
	private Integer pageCurrent=1;
	public PageObject(List<T> records, Integer rowCount, Integer pageSize, Integer pageCurrent) {
		super();
		this.records = records;
		this.rowCount = rowCount;
		this.pageSize = pageSize;
		this.pageCurrent = pageCurrent;
		this.PageCout=rowCount/pageSize;
		//计算分页:方案一
		if(rowCount%pageSize!=0) {
			this.PageCout++;
		} 
		//方案:二
	//	this.pageCount=(rowCount-1)/pageSize+1;
	}
	
}
